import {
    totalConfig,
    propName
} from 'server/config/templateConfig';
let itemsConfig = totalConfig.item;
let equipmentsConfig = totalConfig.equipment;

//物品背包属性
class ItemModel {
    static getInstance() {
        if (!ItemModel.instance) {
            ItemModel.instance = new ItemModel();
        }
        return ItemModel.instance;
    }

    //生成道具的属性
    create(opts) {
        let templateId = parseInt(opts.templateId);
        let type = parseInt(templateId / 10000);
        if (type === 51) { //装备
            return {
                templateId: templateId,
                stack: 1,
                name: opts.name || equipmentsConfig[opts.templateId].name,
                lvl: opts.lvl || 1, //装备等级
                mainAttri: opts.mainAttri || {}, //装备主属性
                addAttri: opts.addAttri || {}, //装备附加属性
                solt: opts.solt || [], //宝石槽
                strLvl: opts.strLvl || 0, //强化等级
            }
        } else {
            return {
                templateId: templateId, //模板id
                stack: opts.stack || 1, //物品在背包格子叠加数
                hp: opts.hp || itemsConfig[opts.templateId].maxHp || null, //耐久度
                // bind: opts.bind || 0, //物品是否绑定 0不可交易1可以交易
            }
        }
    }

    getItemConfig(itemId) {
        let templateId = parseInt(itemId);
        let type = parseInt(templateId / 10000);
        if (type === 51) { //装备
            return equipmentsConfig[itemId];
        } else {
            return itemsConfig[itemId];
        }
    }
}

export default ItemModel.getInstance()